package com.neouton.crm.managerReceiptRecord.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.neouton.common.util.PageUtil;
import com.neouton.crm.entity.SysUserEntity;
import com.neouton.crm.managerReceiptRecord.entity.ManagerReceiptRecord;
import com.neouton.crm.managerReceiptRecord.entity.ManagerReceiptTable;
import com.neouton.crm.receiptRecords.entity.ReceiptRecords;
import com.neouton.crm.receiptRecords.entity.ReceiptTable;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

public interface ManagerReceiptService {

     ManagerReceiptRecord saveManagerReceiptRecord(ManagerReceiptRecord managerReceiptRecord, String token);

    PageUtil<ManagerReceiptRecord> queryManagerReceiptRecordsListInfo(IPage<ManagerReceiptRecord> page, ManagerReceiptRecord managerReceiptRecord, List<SysUserEntity> userList, String token);

    List<ManagerReceiptRecord> queryManagerReceiptRecord(ManagerReceiptRecord managerReceiptRecord);

    Boolean approvedManagerReceiptRecord(ManagerReceiptRecord entity, String token, boolean auto);

    Boolean rejectionManagerReceiptRecord(ManagerReceiptRecord entity, String token);

    ManagerReceiptRecord queryManagerReceiptRecordHistory(Integer approvalId);

    List<ManagerReceiptTable> queryReceiptTablesByIdAndPlanPeriod(ManagerReceiptTable entity);

    void updateReceiptTableData(Integer approvalId);

    List<ManagerReceiptRecord> queryReceiptRecordsListInfo(ManagerReceiptRecord entity, List<SysUserEntity> userList, String token);

    void exportReceiptRecordsInfo(HttpServletResponse response, List<ManagerReceiptRecord> list, String token) throws Exception;

    PageUtil<ManagerReceiptRecord> queryReceiptRecordsApprovalListInfo(IPage<ManagerReceiptRecord> page, ManagerReceiptRecord managerReceiptRecord, String token);

    Boolean deleteReceiptRecordById(Integer receiptRecordsId);
}
